/*
 * Copyright 2004-2006 asoft
 * 本软件及其所有拷贝的名称，与光盘上或本软件中注明的公司同在。
 * 本软件及文档享有版权，并受国家版权法及国际协约条款的保护。
 * 您不可以从本软件中去掉其版权声明；并保证为本软件的拷贝（本部或部分）复制版权声明。
 * 您同意制止以任何形式非法拷贝本软件及文档。
 * 版权信息参见：
 *      http://www.asoft.cn/licenses
 */

package com.asoft.common.sysframe.valid;

import java.io.Serializable;

import javax.servlet.http.HttpServletRequest;

import org.apache.log4j.Logger;

import com.asoft.common.sysframe.define.SysFrameParams;
import com.asoft.common.sysframe.model.User;
import com.asoft.common.util.mvc.valid.UserValidator;
import com.asoft.common.util.mvc.valid.ValidatedResult;

/**
 * <p>Title: 修改密码</p>
 * <p>Description: 修改密码 </p>
 * <p>Copyright: Copyright (c) 2004-2006</p>
 * <p>Company: asoft</p>
 * @ $Author: amon.lei $
 * @ $Date: 2007-2-20 $
 * @ $Revision: 1.0 $
 * @ created in 2007-2-20
 *
 */

public class ChangeUserPassWordValidator extends UserValidator
{
        static Logger logger = Logger.getLogger(ChangeUserPassWordValidator.class);

        /**
         * 修改密码
         *
         * @ param: HttpServletRequest request
         * @ param: ValidatedResult vr 校验结果存放器
         * @ param: String[] params 配置参数
         */

        public void validing(HttpServletRequest request,ValidatedResult vr,String[] params)
        {
                logger.debug("开始进行修改密码前校验");
                User user = (User) this.validBaseObjectById(request,
                                                            vr,
                                                            "userManager",
                                                            "errMess",
                                                            (Serializable)request.getSession()
                                                                                 .getAttribute(SysFrameParams.CURRENT_USER_ID),
                                                            "无法获取当前用户id");
                
                String oldPassword = this.validString(request,vr,"oldPassWord",0,6);
                
                String password = this.validString(request,vr,"newPassWord",6,6);
                
                if(!user.checkPW(oldPassword))
                {
                        vr.setErrMess("errMess","密码不正确");
                        return;
                }
                
                if(vr.isAllValidated())
                {
                        logger.debug("通过校验");
                        user.resetPW(password);
                        request.setAttribute(User.class.getName(),user);
                }
        }
}
